<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script>
	{
		// 1- async 函数声明
		async function fn() {
		
		}
		
		const fn2 = async function () {
		
		}
		const fn3 = async () => {
		
		}
		setTimeout(async () => {
		
		})
		const obj = {
			fn: async function () {
			
			},
			async fn2() {
			
			},
			fn3: async () => {
			
			}
		}
		
		class Box {
			static async fn2() {
			
			}
			
			async fn() {
			
			}
		}
		
		
		// const arr = [1, 2, 3, 4];
		// arr.forEach(async function (item) {
		// 	// setTimeout(()=>{
		// 	// 	console.log(item)
		// 	// })
		// 	const result = await item;
		// 	console.log(result);
		//
		// })
		// console.log(100);
		
		
		
		
	}
	{
		// 2- async 函数返回值
		// async function fn(){
		// 	// return 100;
		// 	// return Promise.reject(100)
		// 	// return Promise.resolve(200)
		// 	throw "异常"
		// }
		//
		// console.log(fn());
		
		
		
	}
	{
		// await
		// async function fn(){
		// 	const a = await 1;
		// 	console.log(a);// 1
		// }
		// fn();
		
		
		// async function fn(){
		// 	const a = await Promise.resolve(100);
		// 	console.log(a);// 100
		// }
		// fn();
		
		// async function fn(){
		// 	try{
		// 		const a = await Promise.reject(100);
		// 		console.log(a);// 100
		// 	}catch (err){
		// 		console.log(err);
		// 	}
		//
		// }
		// console.log("fn",fn());
	}
	{
		// fn2
		// fn  fullfiled undefined
		// 100
		function fn2(){
			console.log("fn2");
			return 100
		}
		async function fn(){
			try{
				const a = await fn2();
				console.log(a);// 100
			}catch (err){
				console.log(err);
			}
			
		}
		console.log("fn",fn());
	}
</script>
</html>